FastClick.attach(document.body); //处理移动端点击延迟
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
canvas.width = $(window).outerWidth();
canvas.height = $(window).outerHeight();
var gameNum = $(".today-nums em").text();				// 游戏次数
var outDis = 100;  			// 初始位置
var rule = 0.05;  			// 生成鱼的概率
var imageData = {};  		// 图片资源
var musicData = {};  		// 图片资源
var bulletArray = [];		// 子弹
var fishArray = []; 		// 鱼
var dieFishArray = []; 	// 捕获后的鱼
var netArray = []; 			// 网
var coinArray = [];			// 金币
var bulletIn = true;    // 状态判断
var cannon;  // 大炮
var cannonMusic = 'audio/cannon.mp3';
var netMusic = 'audio/net.wav';
var music1 = 'audio/music1.mp3';
var music2 = 'audio/music2.mp3';
var music3 = 'audio/music3.mp3';
// function musicplay(url){
//   var audio = document.querySelector(".audio");
//   audio.pause();
//   audio.setAttribute('src', url);
//   audio.addEventListener("canplaythrough",function() {
//     audio.play();
//   },false);
//   audio.load();
// }
// 网的音乐
// var netMusic = document.getElementById("net-music");
var netMusic = new Audio();
netMusic.src = "https://v.superour.com/addons/weisrc_dish/template/mobile/style1/assets/fish/audio/net.mp3";
document.addEventListener("WeixinJSBridgeReady",function(){
  netMusic.play();
  netMusic.pause();
},false);
netMusic.load();
//
// 背景音乐
// var bgMusic = document.getElementById("bg-music");
var bgMusic = new Audio();
bgMusic.src = 'https://v.superour.com/addons/weisrc_dish/template/mobile/style1/assets/fish/audio/bg2.mp3';
document.addEventListener("WeixinJSBridgeReady",function(){
  bgMusic.play();
  netMusic.pause();
},false);
bgMusic.load();

// $("canvas").on("touchstart",function(){
//   toggleSound();
// });
// function toggleSound() {
//   var bgMusic = document.getElementById("bgMusic");
//   if (bgMusic.paused) {
//     bgMusic.play();
//   }
// }

$(".today-nums em").text(gameNum);
// $(".readyGo img").on("click",function(){
//   // bgMusic.play();
//   // var onEnded = function() {
//   //   this.play();
//   // };
//   // bgMusic.addEventListener('ended', onEnded, false);
//   //
//   $(".canvas").css("background-image",'url(img/bg.jpg)');
//   $(".readyGo img").hide();
//   $(".readyGo p").show();
//   loadResources(resources,init,function(current,total){ //加载资源
//     console.log(parseInt(current/total*100)+"%");
//     $(".readyGo span").text(parseInt(current/total*100));
//     if(current/total*100 == 100){
//       $(".readyGo").hide();
//       // 背景音乐
//       bgMusic.play();
//       var onEnded = function() {
//         this.play();
//       };
//       bgMusic.addEventListener('ended', onEnded, false);
//     }
//   });
// });
// bgMusic.onloadedmetadata = function(){
  $(".canvas").css("background-image",'url(img/bg.jpg)');
  $(".readyGo img").hide();
  $(".readyGo p").show();
  loadResources(resources,init,function(current,total){ //加载资源
    console.log(parseInt(current/total*100)+"%");
    $(".readyGo span").text(parseInt(current/total*100));
    if(current/total*100 == 100){
      $(".readyGo").hide();
      // 背景音乐
      bgMusic.play();
      var onEnded = function() {
        this.play();
      };
      bgMusic.addEventListener('ended', onEnded, false);
    }
  });
// };

// 适配
window.addEventListener('resize', function() {
  setTimeout(function(){
    canvas.width = $(window).outerWidth();
    canvas.height = $(window).outerHeight();
    if(cannon){
      cannon.x = canvas.width * 0.5;
      cannon.y = canvas.height - 74 / 2;
    }
  }, 300);
}, false);


function init(){ // init
  cannon = new Cannon(1);
  $(".today-nums em").text(gameNum);
  setInterval(function(){
    clear(ctx);
    // 生成鱼
    if( Math.random() < rule && fishArray.length < 20){
      if(fishArray[0] == undefined || fishArray[0].type != (FISH_SIZE.length - 1)){
        var fish = new Fish((FISH_SIZE.length - 1));
        var leftSide = Math.random() > 0.5;
        fish.x = leftSide ? -outDis : canvas.width + outDis ;
        fish.y = rnd(100,500);
        fish.rotate = leftSide ? rnd(-45,45) : rnd(135,225);
        fishArray.splice(0,0,fish)
      }else{
        var fish = new Fish(rnd(1,(FISH_SIZE.length - 1)));
        var leftSide = Math.random() > 0.5;
        fish.x = leftSide ? -outDis : canvas.width + outDis ;
        fish.y = rnd(100,500);
        fish.rotate = leftSide ? rnd(-45,45) : rnd(135,225);
        fishArray.push(fish);
      }
    }

    // 画鱼
    fishArray.forEach(function(fish,index){
      if(
        fish.x < -outDis ||
        fish.x > canvas.width + outDis ||
        fish.y < -outDis ||
        fish.y > canvas.height + outDis
      ){
        fishArray.splice(index,1)
      } else {
        fish.draw(ctx);
      }
    });
    // 画捕获后的鱼
    dieFishArray.forEach(function(dieFish,index){
      dieFish.draw(ctx);
    });
    // 画网
    netArray.forEach(function(net){
      net.draw(ctx);
    });
    // 画金币
    coinArray.forEach(function(coin,index){
      if(
        coin.x < -outDis
      ){
        coinArray.splice(index,1)
      } else {
        coin.draw(ctx);
      }
    });
    // 检测是否击中
    fishArray.forEach(function(fish,fishIndex){
      bulletArray.forEach(function(bullet,bulletIndex){
        // 击中
        if( fish.isBulletIn(bullet.x,bullet.y)){
          console.log(fishArray[fishIndex].id)
          // 游戏次数减1
          if(gameNum>0){
            gameNum--;
            $(".today-nums em").text(gameNum);
          }
          // 概率控制
          // var isSuc = ajax(fishArray[fishIndex].id,fishArray[fishIndex].publics,fishArray[fishIndex].types,fishArray[fishIndex].thumb,fishArray[fishIndex].optionid);
          // var isSuc;
          // $.post("www.baidu.com",{suggest:11},function(result){
          //   console.log(result)
          //   alert(result);
          //   isSuc = result;
          // });
          netMusic.play();
          var isSuc = Math.random()*15;
          // console.log(isSuc);
          if(bulletIn && gameNum>0 && isSuc<=1){
            //musicplay(netMusic);
            bulletIn = false;
            // 删鱼 删子弹
            fishArray.splice(fishIndex,1);
            bulletArray.splice(bulletIndex,1);
            // 生成捕获后的鱼
            var dieFish = new DieFish(fish.type);
            dieFish.x = fish.x;
            dieFish.y = fish.y;
            dieFish.rotate = fish.rotate;
            dieFishArray.push(dieFish);
            // 生成网
            var net = new Net(cannon.type);
            net.x = fish.x;
            net.y = fish.y;
            //
            netArray.push(net);
            setTimeout(function(){
              dieFishArray.shift();
              netArray.shift();
              // 生成金币
              var coin = new Coin(fish.type > 6?2:1);
              coin.x = fish.x;
              coin.y = fish.y;
              coinArray.push(coin);
              setTimeout(function(){
                // bgMusic.pause();
                // sucMusic.play();
                // musicplay(music1);
                $(".popup").show();
                $(".suc-bg").show();
                $(".suc-tip").show().text("奖品"+fishArray[fishIndex].id);
              },60)
            },500)
          }else{
            // 删子弹
            bulletArray.splice(bulletIndex,1);
            // 生成网
            var net = new Net(cannon.type);
            net.x = fish.x;
            net.y = fish.y;
            netArray.push(net);
            setTimeout(function(){
              netArray.shift();
            },300)
          }
        }
      })
    });

    // 画炮台
    ctx.drawImage(imageData.bottom,
      0,0,716,57,
      0,canvas.height-57,canvas.width,57
    );

    bulletArray.forEach(function(bullet,index){
      // 不在画面中
      if(
        bullet.x < -20 ||
        bullet.x > canvas.width + 20 ||
        bullet.y < -20 ||
        bullet.y > canvas.height + 20
      ){
        bulletArray.splice(index,1)
      } else {
        bullet.draw(ctx);
      }
    });
    cannon.draw(ctx);
  },15);
  // 画布点击事件
  canvas.onclick = function(ev){
    if(gameNum>0 && bulletIn){
      var {
        clientX,
        clientY
      } = ev;
      var disX = clientX - cannon.x;
      var disY = cannon.y - clientY ;
      cannon.rotate = a2d(atan2(disX,disY));
      cannon.emit();
      var bullet = new Bullet(cannon.type);
      bullet.x = cannon.x;
      bullet.y = cannon.y;
      bullet.rotate = cannon.rotate;
      bulletArray.push(bullet);
      // musicplay(cannonMusic)
    }else if(gameNum==0 && bulletIn){
      $(".popup").show();
      $(".num-bg").show();
      $(".num-tip").show();
    }
  };
  // 活动规则
  $(".rules-btn").on("click",function(){
    $(".popup").show();
    $(".rule-bg").show();
    $(".rule-tip").show();
  });
  // 关闭弹窗
  $(".popup .pop-close").on("click",function(){
    bulletIn = true;
    if(!$(".suc-tip").is(":hidden")){
      // musicplay('');
      // bgMusic.play();
    }
    $(".popup-tip").hide();
    $(".popup-bg").hide();
    $(".popup").hide();
  })
}